#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>

#define FOR(i,a,n) for(int i=a;i<n;++i)
#define REP(i,n) FOR(i,0,n)

using namespace std;

string s;
string ans;
void printS(int len)
{
    REP(i,len/2) putchar('4');
    REP(i,len/2) putchar('7');
    puts("");
}

bool judge(int pos,int n4,int n7,bool greater=false)
{
    if(greater||pos==s.size())
    {
        if(s.size()-pos<max(s.size()/2-n4,s.size()/2-n7)) return false;
        FOR(i,n7,s.size()/2) ans+='7';
        FOR(i,n4,s.size()/2) ans+='4';
        return true;
    }
    if(s[pos]<='4'&&judge(pos+1,n4+1,n7,s[pos]<'4'))
    {
        ans+='4';
        return true;
    }
    if(s[pos]<='7'&&judge(pos+1,n4,n7+1,s[pos]<'7'))
    {
        ans+='7';
        return true;
    }
    return false;
}
int main()
{
    while(cin>>s)
    {
        if(s.size()&1) printS(s.size()+1);
        else
        {
            ans="";
            if(judge(0,0,0))
            {
                reverse(ans.begin(),ans.end());
                cout<<ans<<endl;
            }
            else printS(s.size()+2);
        }
    }
	return 0;
}
